Changes to make gdk-pixbuf threadsafe (#157310, #157306, Colin Walters):
authorMatthias Clasen <mclasen@redhat.com>
Fri, 12 Nov 2004 05:34:31 +0000 (05:34 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 12 Nov 2004 05:34:31 +0000 (05:34 +0000)
commitcb918cdb02c1c1fed54a86776a0888e236d2e198
treea606b43b376cd1eeb9d3586634f20493d2b84635
parent26cbda1b88e5e57533468cde10d51cd5baeeb871
Changes to make gdk-pixbuf threadsafe (#157310, #157306, Colin Walters):

2004-11-12  Matthias Clasen  <mclasen@redhat.com>

Changes to make gdk-pixbuf threadsafe  (#157310, #157306,
Colin Walters):

* gdk-pixbuf-io.h (enum GdkPixbufFormatFlags): Add
GDK_PIXBUF_FORMAT_THREADSAFE to indicate that an image loader
is threadsafe.

* gdk-pixbuf-io.c (get_file_formats, _gdk_pixbuf_load_module):
Use a lock to make initialization of global data structures
threadsafe.
* gdk-pixbuf-private.h:
* gdk-pixbuf-io.c (_gdk_pixbuf_lock, _gdk_pixbuf_unlock):
Auxiliary functions which use another lock to protect
threadunsafe image loaders.

* gdk-pixbuf-io.c (gdk_pixbuf_real_save):
(save_to_callback_with_tmp_file):
(gdk_pixbuf_real_save_to_callback):
(gdk_pixbuf_new_from_xpm_data):
(_gdk_pixbuf_generic_image_load):
* gdk-pixbuf-animation.c (gdk_pixbuf_animation_new_from_file):
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module):
(gdk_pixbuf_loader_close):
(gdk_pixbuf_loader_finalize):
Use _gdk_pixbuf_lock() and _gdk_pixbuf_unlock().

* io-ani.c, io-bmp.c, io-gif.c, io-ico.c:
* io-jpeg.c, io-pcx.c, io-png.c, io-pnm.c:
* io-ras.c, io-tga.c, io-wbmp.c, io-xbm.c:
* io-xpm.c: Mark as threadsafe.

* io-tiff.c: Remove pointless locking, mark as
threadunsafe.
22 files changed:
docs/reference/ChangeLog
docs/reference/gdk-pixbuf/tmpl/module_interface.sgml
gdk-pixbuf/ChangeLog
gdk-pixbuf/gdk-pixbuf-animation.c
gdk-pixbuf/gdk-pixbuf-io.c
gdk-pixbuf/gdk-pixbuf-io.h
gdk-pixbuf/gdk-pixbuf-loader.c
gdk-pixbuf/gdk-pixbuf-private.h
gdk-pixbuf/io-ani.c
gdk-pixbuf/io-bmp.c
gdk-pixbuf/io-gif.c
gdk-pixbuf/io-ico.c
gdk-pixbuf/io-jpeg.c
gdk-pixbuf/io-pcx.c
gdk-pixbuf/io-png.c
gdk-pixbuf/io-pnm.c
gdk-pixbuf/io-ras.c
gdk-pixbuf/io-tga.c
gdk-pixbuf/io-tiff.c
gdk-pixbuf/io-wbmp.c
gdk-pixbuf/io-xbm.c
gdk-pixbuf/io-xpm.c